ASP.NET â Page. Header
Podemos transformar qualquer elemento HTML em um Server control utilizando o atributo runat=âserverâ , uma pĂĄgina pode conter ilimitados controles, porĂ©m ela sĂł pode ter um HtmlHead, onde temos acesso Server-side.
<head runat="server">
<title>Untitled Page</title>
</head>
Como nos Server controls, vocĂȘ pode programaticamente alterar o conteĂșdo que Ă© renderizado na tag <head>, Ăștil porque podemos mudar alguns detalhes via cĂłdigo quando precisarmos, como o title, metadata tags (Ăștil para fornecer palavras chaves) e referencias a stylesheet. Para fazer estas modificaçÔes utilizamos os membros da classe HtmlHead, que sĂŁo os seguintes.
Title: Ă o tĂtulo de uma Page HTML que serĂĄ exibido no barra de tĂtulos do browser. VocĂȘ pode mudar em tempo de execução.
StyleSheet: ProvĂȘ um IStyleSheet objeto, que representa um estilo inline no cabeçalho. VocĂȘ pode utilizar o objeto IStyleSheet para criar um novo estilo dinamicamente, utilizando os mĂ©todos CreateStyleRule() e RegisterStyle().
Exemplo
protected void Page_Load(object sender, EventArgs e)
{
// Cria uma Style object
Style bodyStyle = new Style();
bodyStyle.ForeColor = System.Drawing.Color.Blue;
bodyStyle.BackColor = System.Drawing.Color.LightGray;
// Adiciona o style no header
Page.Header.StyleSheet.CreateStyleRule(bodyStyle, null, "body");
}
<title>Untitled Page</title>
<style type="text/css">
body { color:Blue;background-color:LightGrey; }
</style>
</head>
Controls: VocĂȘ pode adicionar ou remover tags metadata via cĂłdigo utilizando as classes HtmlMeta. Abaixo um exemplo de como alterar o tĂtulo e as tags metadata dinamicamente.
{
Page.Header.Title = "TĂtulo dinĂąmico";
//Define uma tag metadata
HtmlMeta metaDescription = new HtmlMeta();
metaDescription.Name = "description";
metaDescription.Content = "ASPNETi, tudo sobre .NET";
//Adicionando
Page.Header.Controls.Add(metaDescription);
//Segundo tag metadata
HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "keywordS";
metaKeywords.Content = ".NET, C#, ASP.NET";
Page.Header.Controls.Add(metaKeywords);
}
RENDERIZADO
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
TĂtulo dinĂąmico
</title>
<meta name="description" content="ASPNETi, tudo sobre .NET" />
<meta name="keywordS" content=".NET, C#, ASP.NET" /></head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQQe26Fc2jEoK6Akrn/SO4FZNd7jg==" />
</div> <div>
</div>
</form>
</body>
</html>
Um item interessante que vejo em alguns sites Ă© mudar o Title com dados que vem do banco, com os exemplos acima, o tĂtulo das suas pĂĄginas podem ficar de forma dinĂąmica dependendo da sua necessidade.
Fabio Galante Mans
fabio.galante@mans.com.br
www.aspneti.com